package cn.lhjl.day07.note;
/*
* java.util.Map<K,V>集合
* Map集合的特点：
*       1.Map集合是一个双列集合，一个元素包含两个值（一个key，一个value）
*       2.Map集合的元素，key和value的数据类型可以不同，也可以相同
*       3.Map集合中的元素，key是不允许重复的，value可以重复
*       4.Map集合中的元素，key和value是一一对应的
* java.util.hashMap<K,V>集合 implement Map<k,v>接口
*
* HashMap集合的特点：
*       1.HashMap集合底层是哈希表，查询速度非常的快
*           jdk1.8之前：哈希表结构为 数组+单向链表
*           jdk1.8之后，哈希表结构为 数组+单向链表/红黑树（当链表长度超过8时）：提高查询的速度。
*       2.HashMap是一个无序集合，存储和取出元素的顺序可能不一致。
*
* LinkedHashMap集合的特点：
*       1.LinkedHashMap集合底层是哈希表+链表（保证迭代顺序）
*       2.LinkedHashMap集合是一个有序集合，存储和取出元素的顺序一致。
*
* Map集合常用方法：
*
* public V put（K key,V value）:把指定的键与指定的值添加到Map集合中。
*       返回值：V
*           存储的键值对的时候，key不重复，则该方法返回null
*           存储键值对的时候，key重复，会使用要添加的value替换原本key对应的value，返回值是被替换的value
* public V remove（K key）：把指定的键，在集合中对应的键值对元素删除，返回被删除的值
*       返回值：V
*           key不存在，返回null
*           key存在，返回被删除的value
* public V get（K key）：返回指定的键在集合中返回对应的值
*       返回值：V
*           key不存在，返回null
*           key存在，返回对应的value
* public boolean containsKey（K key）：判断Map集合中是否包含指定的键
*       返回值：boolean
*           key不存在返回false
*           key存在返回true
*
* Map集合的第一种遍历：通过键找值的方式
* Map集合中的方法：
* Set<K> keySet()返回此映射中包含的键的Set视图。
* 实现步骤：
*   1.使用Map集合中的keySet方法，把Map集合中多有的键取出，放到Set集合中
*   2.遍历Set集合（迭代器或for循环），获取每一个key
*   3.通过Map集合中的get方法，通过key找到value
*
* Map集合遍历的第二种方式，使用Entry对象遍历
* Map集合中的方法：
*   Set<Map.Entry<K,V>> entrySet():返回此映射中包含的映射关系的Set视图
* 实现步骤：
* 1.使用Map集合中的方法entrySet，把Map集合中的多个Entry取出来，储存在一个Set集合中。
* 2.遍历Set集合，获取每一个Entry对象。
* 3.通过Entry对象中的方法getKey（）和getValue（）获取键与值
*
* 代码如下：（这里要注意Entry是Map内部类，它的引用数据类型要通过Map.Entry<K,V>来创建）
*
*
*
* Set<Map.Entry<String,Integer>> set = map.entrySet();
        Iterator<Map.Entry<String,Integer>> iterator=set.iterator();
        while (iterator.hasNext()){
            Map.Entry<String, Integer> entry = iterator.next();
            String key = entry.getKey();
            Integer value = entry.getValue();
            System.out.println(key+"="+value);
        }
*
*HashMap存储自定义类型键值
* Map集合保证key是唯一的
*       作为key的元素，必须重写hashCode方法和equals方法，以保证key唯一
* 这里用到的方法和HashSet一致
*
*
* */
public class HashMap集合 {
}
